package com.css.fxfzfxqh.common.rest.model.param;

import com.css.fxfzfxqh.modules.buildingKilometerGrid.model.BasePageParam;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;

@EqualsAndHashCode(callSuper = true)
@SuperBuilder
@Data
@NoArgsConstructor
@AllArgsConstructor
public class JcsjVersionPageParam extends BasePageParam {
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date versionStartTime; // 版本时间开始时间

    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date versionEndTime; // 版本时间结束时间

    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date uploadStartTime; // 上传时间开始时间

    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date uploadEndTime; // 上传时间结束时间

    private String versionCode; // 版本号

    private String dataName; // 数据名称

    private String dataType; // 二级数据类别id

    private String dataTypeCode;
    private String typeCode;

    /**
     * 三级数据类别（数据表id）
     */
    private String dataType2;

    /**
     * 数据级别 1-国家级， 2-省级
     */
    private Integer dataRangeCountry;

    /**
     * 版本范围省id
     */
    private String dataRangeProvince;

    /**
     * 版本范围市id
     */
    private String dataRangeCity;

    /**
     * 版本范围县区id
     */
    private String dataRangeArea;

    /**
     * 版本说明
     */
    private String versionDesc;

    /**
     * 查询国家级-某个省数据时，是否包含全国级别的数据 0（不包含，默认），1（包含）
     */
    private int hasNationwide = 0;

    private String uploadUsername;

    private String uploadUserIds;

    private boolean isProvinceUser = false;
    private String userProvinceId;
    private String typeLevel1Code;
    private String typeLevel2Code;
    private String typeLevel3Code;

}
